A legacy endpoint may present a complex API that accepts many parameters or provides a large volume of data. For example, while modern programming practice may recommend providing a large number of functions, each of which takes a few parameters, to accomplish a set of tasks, a legacy endpoint may provide fewer functions with more parameters to perform the same set of tasks.
A representational state transfer (REST) architecture may support a RESTful interface between a client and a server. The RESTful interface may be stateless (e.g., no client context may be stored on the server between requests). The RESTful interface may be cacheable (e.g., responses from the server may indicate if they are cacheable). A client may cache the cacheable responses, reducing network traffic and latency. The RESTful interface may be layered (e.g., the client may connect to an intermediate server rather than an end server). The RESTful interface may identify the resources involved in each request in order to allow the client to modify the resources it possesses. Furthermore, in a stateless RESTful interface, each REST message may be self-contained and include enough information to describe how to process the message. Some clients may track their own state and make state transitions only through hypermedia (e.g., hyperlinks).